﻿using System;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Collections.Generic;


namespace AIC_PN
{
    public static class MyConvert
    {

        /// <summary>
        /// Hàm chuyển đổi kiểu dữ liệu bất kỳ sang Int, nếu lỗi trả về giá trị 0
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public static int ToInt(object input)
        {
            try
            {
                return Convert.ToInt32(input);
            }
            catch
            {
                return 0;
            }
        }

        public static Nullable<int> ToInt_Nullable(object input)
        {
            try
            {
                return Convert.ToInt32(input);
            }
            catch
            {
                return null;
            }
        }


        /// <summary>
        /// Hàm chuyển đổi kiểu dữ liệu bất kỳ sang Double, nếu lỗi trả về giá trị 0
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public static double ToDouble(object input)
        {
            try
            {
                return Convert.ToDouble(input);
            }
            catch
            {
                return 0;
            }
        }
        /// <summary>
        /// Hàm convert kiểu giá trị ngày tháng dd/MM/yyyy. Trả lại DateTime.MinValue nếu có lỗi
        /// </summary>
        /// <param name="input">Chuỗi kiểu ngày tháng, ví dụ: 25/3/2013</param>
        /// <returns></returns>
        public static DateTime ToDateFromV(string input)
        {
            try
            {
                return new DateTime(ToInt(input.Split('/')[2]), ToInt(input.Split('/')[1]), ToInt(input.Split('/')[0]));
            }
            catch
            {
                return DateTime.MinValue;
            }
        }
        public static Nullable<DateTime> ToDateFromV_Nullable(string input)
        {
            try
            {
                return new DateTime(ToInt(input.Split('/')[2]), ToInt(input.Split('/')[1]), ToInt(input.Split('/')[0]));
            }
            catch
            {
                return null;
            }
        }
        /// <summary>
        /// Hàm chuyển DateTime trong object sang string dạng dd/MM/yyyy
        /// có lỗi trả về giá trị DateTime.MinValue.ToString ("dd/MM/yyyy");
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public static string ToStringDateV(object input)
        {
            try
            {
                return ((DateTime)input).ToString("dd/MM/yyyy");
            }
            catch
            {
                return DateTime.MinValue.ToString("dd/MM/yyyy");
            }
        }
    }
}
